<?php

/**
 * busqueda actions.
 *
 * @package    comande
 * @subpackage busqueda
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class busquedaActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {

  }
   public function executeAjax_busqueda_fechas_combo_monitoreo(sfWebRequest $request)
  {
       //recibiendo parametros
       $criteria_busqueda = $request->getParameter('criterio_busqueda');
       $id_usuario = $request->getParameter('usuario_pc');
        $recurso = new myLib();
       if($criteria_busqueda != null)
       switch($criteria_busqueda){
           case 0: //seleccione
           $this->condicion = 0;
            $this->datos = null;

           break;
          case 1: //hoy
          
           $date = $recurso->executeRetornaFechaLocal();
           $new_criteria_busqueda = new Criteria();
           $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::FECHA, '%'.$date.'%', Criteria::LIKE);
           $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::USUARIO_ID,$id_usuario);
           $datos = DetalleConsumoUsuarioPeer::doSelectOne($new_criteria_busqueda);
           if(count($datos)>0){
                $array_consumo = $datos->getArrayConsumo();
           // decodifico json
           $obj = json_decode($array_consumo);
           $array_lista_consumo_aux = array();
           for($id = 0 ; $id < 24; $id++)
           {
             if($obj->{$id}->{'consumo_usuario'} != null)
             {
                 foreach ($obj->{$id} as $row)
                 {
                    foreach( $row as $file)
                    {
                      $array_lista_consumo_aux[] = $file;
                    }
                 }
             }
           }


//retorna la lista de los programas usados
$this->lista_programas_usuario = $recurso->executeRetorna_programas($array_lista_consumo_aux);

//retorna todo el detalle de los programas usados y las horas de inicio
$this->detalle_consumo_programas = $recurso->executeRetorna_programas_hora_inicio($array_lista_consumo_aux);

//horas

$array_horas = array();

  for($i=0; $i<24;$i++){
      $array_horas [] = $i;
  }

$this->array_horas = $array_horas;
/*
 * FIN DE GRAFICO
 */

  $this->lista_consumo = $array_lista_consumo_aux;
  $this->datos_t =  $recurso->executeRetornar_valores_torta($array_lista_consumo_aux);


           }else{
               $this->lista_programas_usuario = null;
               $this->detalle_consumo_programas = null;
               $this->array_horas= null;
               $this->lista_consumo = null;
               $this->datos_t = null;
           }
          
       $this->condicion = 1;

           break;
           case 2: // ayer

            $date = $recurso->executeRetornaFechaLocal();
            $ayer  =  date( "Y-m-d", strtotime( "-1 day", strtotime( $date ) ) );
          
           $new_criteria_busqueda = new Criteria();
           $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::FECHA, '%'.$ayer.'%', Criteria::LIKE);
           $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::USUARIO_ID,$id_usuario);
           $datos = DetalleConsumoUsuarioPeer::doSelectOne($new_criteria_busqueda);
           if(count($datos)>0){
               $array_consumo = $datos->getArrayConsumo();
           // decodifico json
           $obj = json_decode($array_consumo);
           $array_lista_consumo_aux = array();
           for($id = 0 ; $id < 24; $id++){
             if( isset($obj->{$id}) ){
           foreach ($obj->{$id} as $row){
		 foreach( $row as $file){
                           $array_lista_consumo_aux[] = $file;
                         }
             }
                }

                }
           $this->datos_t = $recurso->executeRetornar_valores_torta($array_lista_consumo_aux);
           //retorna la lista de los programas usados
$this->lista_programas_usuario = $recurso->executeRetorna_programas($array_lista_consumo_aux);

//retorna todo el detalle de los programas usados y las horas de inicio
$this->detalle_consumo_programas = $recurso->executeRetorna_programas_hora_inicio($array_lista_consumo_aux);

//horas

$array_horas = array();

  for($i=0; $i<24;$i++){
      $array_horas [] = $i;
  }

$this->array_horas = $array_horas;
           }else{
               $this->datos_t = null;
               $this->lista_programas_usuario = null;
               $this->detalle_consumo_programas = null;
               $this->array_horas = null;
           }

           $this->condicion = 2;
           break;
           case 3:  //ultima semana

            $date = $recurso->executeRetornaFechaLocal();
            $semana_antes  =  date( "Y-m-d", strtotime( "-7 day", strtotime( $date ) ) );
            $new_criteria_busqueda = new Criteria();
            $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::FECHA, $semana_antes, Criteria::GREATER_EQUAL);
            $new_criteria_busqueda->addAnd(DetalleConsumoUsuarioPeer::FECHA, $date, Criteria:: LESS_EQUAL);
            $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::USUARIO_ID,$id_usuario);
            $datos = DetalleConsumoUsuarioPeer::doSelect($new_criteria_busqueda);
            //$this->datos = $datos;
              $array_lista_programas_aux = array();

             //arreglo importante para el grafico en general


	    foreach($datos as $rows){

                $obj = json_decode($rows->getArrayConsumo());
                $array_fechas_consumo[] = $rows->getFecha();
                for($i=0; $i<24; $i++){
                        if($obj->{$i}->{'consumo_usuario'}!= null)
                                    foreach ($obj->{$i} as $row){
                                             foreach( $row as $file){
                                                  $array_lista_programas_aux[] =  $file;
                                             }
                                        }

                }

            }
           //$this->datos = $array_lista_programas_aux;
       
             //grafico de torta
             $this->datos_t = $recurso->executeRetornar_valores_torta($array_lista_programas_aux);

            //grafico general (envio las filas sacadas de la BD y las fechas Ordenadas)
            //cantidad cabecera
             $this->cantidad_cabecera = $recurso->executeCantidad_cabecera($datos);
             $this->cantidad_filas = $recurso->executeCantidad_rows($datos);
             $this->fechas = $array_fechas_consumo;
             $this->grafico_general = $recurso->executePintar_grafico_bidimensional($datos);
             $this->condicion = 3;


           break;
           default: // hace 1 mes

            $date = $recurso->executeRetornaFechaLocal();
            $mes_antes  =  date( "Y-m-d", strtotime( "-1 month", strtotime( $date ) ) );
          $new_criteria_busqueda = new Criteria();
            $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::FECHA, $mes_antes, Criteria::GREATER_EQUAL);
            $new_criteria_busqueda->addAnd(DetalleConsumoUsuarioPeer::FECHA, $date, Criteria:: LESS_EQUAL);
            $new_criteria_busqueda->add(DetalleConsumoUsuarioPeer::USUARIO_ID,$id_usuario);
            $datos = DetalleConsumoUsuarioPeer::doSelect($new_criteria_busqueda);
            //$this->datos = $datos;
              $array_lista_programas_aux = array();

             //arreglo importante para el grafico en general


	    foreach($datos as $rows){

                $obj = json_decode($rows->getArrayConsumo());
                $array_fechas_consumo[] = $rows->getFecha();
                for($i=0; $i<24; $i++){
                        if($obj->{$i}->{'consumo_usuario'}!=null)
                                    foreach ($obj->{$i} as $row){
                                             foreach( $row as $file){
                                                  $array_lista_programas_aux[] =  $file;
                                             }
                                        }

                }

            }
           //$this->datos = $array_lista_programas_aux;
             $recurso = new myLib();
             //grafico de torta
             $this->datos_t = $recurso->executeRetornar_valores_torta($array_lista_programas_aux);

            //grafico general (envio las filas sacadas de la BD y las fechas Ordenadas)
            //cantidad cabecera
             $this->cantidad_cabecera = $recurso->executeCantidad_cabecera($datos);
             $this->cantidad_filas = $recurso->executeCantidad_rows($datos);
             $this->fechas = $array_fechas_consumo;
             $this->grafico_general = $recurso->executePintar_grafico_bidimensional($datos);

             $this->condicion = 4;

           break;
       }


}


  
}
